/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package saa.controller;

import java.util.ArrayList;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import saa.dao.periodo.OfertaDisciplinaDAOInterface;
import saa.dao.periodo.aluno.OfertaDisciplinaAlunoDAOInterface;
import saa.dominio.periodo.OfertaDisciplina;
import saa.dominio.periodo.aluno.OfertaDisciplinaAluno;
import saa.dominio.usuario.Aluno;

/**
 *
 * @author lobao
 */
@ManagedBean(name = "alunoController")
@SessionScoped
public class AlunoController {

    @EJB
    private OfertaDisciplinaAlunoDAOInterface ofertaDisciplinaAlunoDAO;
    @EJB
    private OfertaDisciplinaDAOInterface ofertaDisciplinaDAO;

    private Aluno aluno;

    private OfertaDisciplinaAluno ofertaDisciplinaAluno;

    public AlunoController() {
        super();
    }

    public List<OfertaDisciplinaAluno> disciplinasMatriculadas() {
        List<OfertaDisciplinaAluno> matriculadas = ofertaDisciplinaAlunoDAO.listar(aluno.getId());
        if (matriculadas != null) {
            return matriculadas;
        }
        return new ArrayList<OfertaDisciplinaAluno>();
    }

    public List<OfertaDisciplina> disciplinasOfertadas() {
        List<OfertaDisciplina> ofertadas = ofertaDisciplinaDAO.listarPorCurso(this.aluno.getCurso().getId());
        if (ofertadas != null) {
            return ofertadas;
        }
        return new ArrayList<OfertaDisciplina>();
    }

    public String matricular(OfertaDisciplina oferta) {
        if (ofertaDisciplinaAlunoDAO.criar(this.aluno, oferta)) {
            return "ok";
        } else {
            return "";
        }
    }

    public String gerenciar(OfertaDisciplinaAluno ofertaDisciplinaAluno) {
        this.ofertaDisciplinaAluno = ofertaDisciplinaAlunoDAO.buscar(ofertaDisciplinaAluno.getAluno().getId(), ofertaDisciplinaAluno.getOfertaDisciplina().getId());
        return "ok";
    }

    public Aluno getAluno() {
        return aluno;
    }

    public void setAluno(Aluno aluno) {
        this.aluno = aluno;
    }

    public OfertaDisciplinaAluno getOfertaDisciplinaAluno() {
        return ofertaDisciplinaAluno;
    }

    public void setOfertaDisciplinaAluno(OfertaDisciplinaAluno ofertaDisciplinaAluno) {
        this.ofertaDisciplinaAluno = ofertaDisciplinaAluno;
    }

}
